// Copyright (C) 2002, International Business Machines
// Corporation and others.  All Rights Reserved.
// This code is licensed under the terms of the Eclipse Public License (EPL).

#ifndef ClpMessage_H
#define ClpMessage_H

#include "CoinPragma.hpp"
#include "ClpConfig.h"

#include <cstring>

// This deals with Clp messages (as against Osi messages etc)

#include "CoinMessageHandler.hpp"
enum CLP_Message {
  CLP_SIMPLEX_FINISHED,
  CLP_SIMPLEX_INFEASIBLE,
  CLP_SIMPLEX_UNBOUNDED,
  CLP_SIMPLEX_STOPPED,
  CLP_SIMPLEX_ERROR,
  CLP_SIMPLEX_INTERRUPT,
  CLP_SIMPLEX_STATUS,
  CLP_DUAL_BOUNDS,
  CLP_SIMPLEX_ACCURACY,
  CLP_SIMPLEX_BADFACTOR,
  CLP_SIMPLEX_BOUNDTIGHTEN,
  CLP_SIMPLEX_INFEASIBILITIES,
  CLP_SIMPLEX_FLAG,
  CLP_SIMPLEX_GIVINGUP,
  CLP_DUAL_CHECKB,
  CLP_DUAL_ORIGINAL,
  CLP_SIMPLEX_PERTURB,
  CLP_PRIMAL_ORIGINAL,
  CLP_PRIMAL_WEIGHT,
  CLP_PRIMAL_OPTIMAL,
  CLP_SINGULARITIES,
  CLP_MODIFIEDBOUNDS,
  CLP_RIMSTATISTICS1,
  CLP_RIMSTATISTICS2,
  CLP_RIMSTATISTICS3,
  CLP_POSSIBLELOOP,
  CLP_SMALLELEMENTS,
  CLP_DUPLICATEELEMENTS,
  CLP_SIMPLEX_HOUSE1,
  CLP_SIMPLEX_HOUSE2,
  CLP_SIMPLEX_NONLINEAR,
  CLP_SIMPLEX_FREEIN,
  CLP_SIMPLEX_PIVOTROW,
  CLP_DUAL_CHECK,
  CLP_PRIMAL_DJ,
  CLP_PACKEDSCALE_INITIAL,
  CLP_PACKEDSCALE_WHILE,
  CLP_PACKEDSCALE_FINAL,
  CLP_PACKEDSCALE_FORGET,
  CLP_INITIALIZE_STEEP,
  CLP_UNABLE_OPEN,
  CLP_BAD_BOUNDS,
  CLP_BAD_MATRIX,
  CLP_LOOP,
  CLP_IMPORT_RESULT,
  CLP_IMPORT_ERRORS,
  CLP_EMPTY_PROBLEM,
  CLP_CRASH,
  CLP_END_VALUES_PASS,
  CLP_QUADRATIC_BOTH,
  CLP_QUADRATIC_PRIMAL_DETAILS,
  CLP_IDIOT_ITERATION,
  CLP_INFEASIBLE,
  CLP_MATRIX_CHANGE,
  CLP_TIMING,
  CLP_INTERVAL_TIMING,
  CLP_SPRINT,
  CLP_BARRIER_ITERATION,
  CLP_BARRIER_OBJECTIVE_GAP,
  CLP_BARRIER_GONE_INFEASIBLE,
  CLP_BARRIER_CLOSE_TO_OPTIMAL,
  CLP_BARRIER_COMPLEMENTARITY,
  CLP_BARRIER_EXIT2,
  CLP_BARRIER_STOPPING,
  CLP_BARRIER_EXIT,
  CLP_BARRIER_SCALING,
  CLP_BARRIER_MU,
  CLP_BARRIER_INFO,
  CLP_BARRIER_END,
  CLP_BARRIER_ACCURACY,
  CLP_BARRIER_SAFE,
  CLP_BARRIER_NEGATIVE_GAPS,
  CLP_BARRIER_REDUCING,
  CLP_BARRIER_DIAGONAL,
  CLP_BARRIER_SLACKS,
  CLP_BARRIER_DUALINF,
  CLP_BARRIER_KILLED,
  CLP_BARRIER_ABS_DROPPED,
  CLP_BARRIER_ABS_ERROR,
  CLP_BARRIER_FEASIBLE,
  CLP_BARRIER_STEP,
  CLP_BARRIER_KKT,
  CLP_RIM_SCALE,
  CLP_SLP_ITER,
  CLP_COMPLICATED_MODEL,
  CLP_BAD_STRING_VALUES,
  CLP_CRUNCH_STATS,
  CLP_PARAMETRICS_STATS,
  CLP_PARAMETRICS_STATS2,
#ifndef NO_FATHOM_PRINT
  CLP_FATHOM_STATUS,
  CLP_FATHOM_SOLUTION,
  CLP_FATHOM_FINISH,
#endif
  CLP_GENERAL,
  CLP_GENERAL2,
  CLP_GENERAL_WARNING,
  CLP_DUMMY_END
};

/** This deals with Clp messages (as against Osi messages etc)
 */
class CLPLIB_EXPORT ClpMessage : public CoinMessages {

public:
  /**@name Constructors etc */
  //@{
  /** Constructor */
  ClpMessage(Language language = us_en);
  //@}
};

#endif

/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
*/
